let token;
//当引入了该js文件之后,就可以得到loginObj.manager对象,可以在其他js代码中直接得到用户信息
let loginObj = new Object();
loginObj.manager = null;
loginObj.isLogin = false;
loginObj.topWin = (function (p, c) {
    while (p != c) {
        c = p;
        p = p.parent;
    }
    return c;
})(window.parent, window);

function getToken() {
    const url = getRootPath() + "OaPersonnelAction/getToken";
    $.ajax({
        url: url,
        type: 'GET',
        async: false,
        success: res => {
            if (res.data.code === 0) {
                loginObj.topWin.location.href = getRootPath() + "pages/dkmoa/login.html";
            } else {
                token = res.data.token;
            }
        },
        error: res => {
            error('404');
        }
    })
}

function error(code) {
    layer.open({
        type: 2,
        title: '错误',
        shadeClose: true,
        shade: false,
        maxmin: true, //开启最大化最小化按钮
        area: ['90%', '90%'],
        content: getRootPath() + "pages/dkmoa/error/404.html"
    });
}

/**
 * 回调参数
 */
let ress;

/**
 * get请求 id查询
 * @param url 请求地址
 * @returns {*} 查询结果
 */
function getAjaxById(url) {
    $.ajax({
        url: url,
        type: 'GET',
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data) {
                    ress = res.data;
                } else {
                    ress = null;
                }
            } else {
                error('404');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * get请求 多参数查询
 * @param url 请求地址
 * @param data 参数
 * @returns {*} 查询结果
 */
function getAjax(url, data) {
    $.ajax({
        url: url,
        type: 'GET',
        data: data,
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data) {
                    if (res.data.code === 500) {
                        error('500');
                    } else {
                        ress = res.data;
                    }
                } else {
                    ress = null;
                }
            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * post请求 数据新增
 * @param url 请求地址
 * @param data 请求参数
 * @returns {*} 回调函数
 */
function postAjax(url, data) {
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'json',
        data: data,
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data.code === 500) {
                    error('500');
                } else {
                    ress = res.data;
                }
            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * post请求 文件上传
 * @param url 请求地址
 * @param data 请求参数
 * @returns {*} 回调函数
 */
function postAjaxFile(url, data) {
    $.ajax({
        url: url,
        type: 'POST',
        data: data,
        processData: false,
        contentType: false,
        headers: {token: token},
        dataType: "json",
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data.code === 500) {
                    error('500');
                } else {
                    ress = res.data;
                }
            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * put请求 数据修改
 * @param url 请求地址
 * @param data 请求参数
 * @returns {*} 回调函数
 */
function putAjax(url, data) {
    $.ajax({
        url: url,
        type: 'PUT',
        data: data,
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data.code === 500) {
                    error('500');
                } else {
                    ress = res.data;
                }

            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * delete请求 多数据删除
 * @param url 请求地址
 * @param data 请求参数
 * @returns {*} 回调函数
 */
function deleteAjax(url, data) {
    $.ajax({
        url: url,
        type: 'DELETE',
        data: data,
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data.code === 500) {
                    error('500');
                } else {
                    ress = res.data;
                }

            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

/**
 * delete请求 id删除
 * @param url 请求地址
 * @returns {*} 回调函数
 */
function deleteAjaxById(url) {
    $.ajax({
        url: url,
        type: 'DELETE',
        headers: {token: token},
        async: false,
        success: res => {
            if (res.code === 1) {
                if (res.data.code === 500) {
                    error('500');
                } else {
                    ress = res.data;
                }

            } else {
                error('500');
            }
        },
        error: res => {
            error('404');
        }
    });
    return ress;
}

//可以在js代码中直接使用window.loginObj
window.loginObj = loginObj;


$(function () {
    getToken();
});

/**
 * 得到项目的根目录
 *
 * @returns
 */
function getRootPath() {
    // 获取当前网址，如： http://localhost:8083/uimcardprj/share/meun.jsp
    var curWwwPath = window.document.location.href;
    // 获取主机地址之后的目录，如： uimcardprj/share/meun.jsp
    var pathName = window.document.location.pathname;
    var pos = curWwwPath.indexOf(pathName);
    // 获取主机地址，如： http://localhost:8083
    var localhostPath = curWwwPath.substring(0, pos);
    // 获取带"/"的项目名，如：/uimcardprj
    var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
    if (projectName.indexOf('hbats') > -1) {//特殊处理,如果没有项目名,则直接返回域名
        return (localhostPath + projectName) + "/";
    } else {
        return localhostPath + "/";
    }

}

/**
 * 关闭当前页面
 */
function formClose() {
    self.opener = null;
    self.close();
}


function dateFormat(fmt, date) {
    var ret;
    var opt = {
        "y+": date.getFullYear().toString(),        // 年
        "M+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "h+": date.getHours().toString(),           // 时
        "m+": date.getMinutes().toString(),         // 分
        "s+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加，必须转化成字符串
    };
    for (var k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        }
    }
    return fmt;
}

function createTime(now) {
    if (now) {
        console.info(Date.parse(now));
        var date = new Date(now);
        var year = date.getFullYear();  //取得4位数的年份
        var month = date.getMonth() + 1;  //取得日期中的月份，其中0表示1月，11表示12月
        var day = date.getDate();      //返回日期月份中的天数（1到31）
        var hour = date.getHours();     //返回日期中的小时数（0到23）
        var minute = date.getMinutes(); //返回日期中的分钟数（0到59）
        var second = date.getSeconds(); //返回日期中的秒数（0到59）
        return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
    }
    return "";
}

function getUser(data) {
    const res = getAjaxById(getRootPath() + "/OaPersonnelAction/getUser");
    console.info(data);
    if (data === res.pkPersonnelId) {
        return true;
    }
    return false;

}

/**
 * 判断权限按钮
 * @param key
 * @returns {boolean}
 */
function isButton(key) {
    const res = getAjaxById(getRootPath() + "OaPersonnelAction/getButton");
    let isBut = false;
    $.each(res, function (index, item) {
        if (item.jurisdictionCode === "SUPER" || item.jurisdictionCode === key) {
            isBut = true;
            return;
        }
    });
    return isBut;
}

/**
 * 是否有权限
 * @param code
 * @returns {boolean}
 */
/*function hasPrivilege(code){

	//如果是超级管理员,则直接返回true
	if(loginObj.manager.manCardid=='superman'){
		return true ;
	}
	var arr = loginObj.manager.buttons;

	console.info(arr);
	for(var i=0;i<arr.length;i++){
		console.info(arr[i].modCode+"==========="+code);
		if(arr[i].modCode == code){
			return true ;
		}
	}
	return false;
}*/

